Test Data Creation এবং @isTest Annotation Salesforce-এর Apex Unit Testing-এ গুরুত্বপূর্ণ ভূমিকা পালন করে। Test Data Creation মূল ডেটাবেসে কোনো পরিবর্তন না করে শুধুমাত্র টেস্টিংয়ের জন্য প্রয়োজনীয় ডেটা তৈরি করে, আর @isTest Annotation ব্যবহার করে টেস্ট ক্লাস এবং মেথড চিহ্নিত করা হয়।
Salesforce প্ল্যাটফর্মে Unit Test চলাকালীন Test Data Creation করতে হয়, যা মূল ডেটাবেসের উপর নির্ভর না করে কেবল টেস্টিংয়ের জন্য ডেটা তৈরি করে। Test Data তৈরি করার সময় SeeAllData=false ব্যবহার করা হয়, যা নিশ্চিত করে যে টেস্ট চলাকালীন মূল ডেটাবেস ডেটা অ্যাক্সেস করা হবে না। Unit Test-এর সঠিকতা ও স্বাধীনতা বজায় রাখতে এটি অত্যন্ত গুরুত্বপূর্ণ।
নিচের উদাহরণে Account
এবং Contact
রেকর্ড তৈরি করে টেস্ট ডেটা প্রস্তুত করা হয়েছে।
@isTest
public class TestDataExample {
public static Account createTestAccount() {
Account acc = new Account(Name = 'Test Account', Industry = 'Technology');
insert acc;
return acc;
}
public static Contact createTestContact(Id accountId) {
Contact con = new Contact(FirstName = 'John', LastName = 'Doe', Email = 'john.doe@example.com', AccountId = accountId);
insert con;
return con;
}
}
Account
রেকর্ড তৈরি করে এবং ডেটাবেসে ইনসার্ট করে।Account
আইডি ব্যবহার করে একটি Contact
রেকর্ড তৈরি করে এবং ডেটাবেসে ইনসার্ট করে।এভাবে TestDataExample
ক্লাস ব্যবহার করে টেস্টের জন্য বিভিন্ন ক্লাসে টেস্ট ডেটা তৈরি ও পুনঃব্যবহার করা যায়।
@isTest Annotation হলো Apex-এ টেস্ট ক্লাস ও মেথড চিহ্নিত করার জন্য ব্যবহৃত একটি অ্যানোটেশন। @isTest অ্যানোটেশন ব্যবহার করে টেস্টিং-এর জন্য নির্দিষ্ট মেথড বা ক্লাস চিহ্নিত করা যায়, যা প্রোডাকশন কোড থেকে আলাদা থাকে।
@isTest
অ্যানোটেশন টেস্ট ক্লাসের শুরুতে ব্যবহার করে পুরো ক্লাসকে টেস্ট ক্লাস হিসেবে চিহ্নিত করা যায়।@isTest
অ্যানোটেশন টেস্ট মেথডের শুরুতে ব্যবহার করা হয়, যাতে এই মেথডটি শুধুমাত্র টেস্টের জন্য চালানো হয়।@isTest
অ্যানোটেশনের সাথে SeeAllData=false
ব্যবহার করলে টেস্ট মেথডে মূল ডেটাবেসে থাকা কোনো ডেটা অ্যাক্সেস করা যাবে না, যা টেস্ট ডেটা নিরাপদ রাখে।@isTest(SeeAllData=false)
public class AccountHandlerTest {
// Test Method
@isTest
static void testUpdateAccountIndustry() {
// Test Data তৈরি
Account acc = new Account(Name = 'Tech Solutions', Industry = 'Healthcare');
insert acc;
// পরীক্ষিত মেথড কল
AccountHandler.updateAccountIndustry(acc.Id, 'Technology');
// আউটপুট যাচাই
Account updatedAcc = [SELECT Industry FROM Account WHERE Id = :acc.Id];
System.assertEquals('Technology', updatedAcc.Industry, 'Industry field did not update correctly');
}
}
testUpdateAccountIndustry
মেথডে @isTest
অ্যানোটেশন ব্যবহার করা হয়েছে, যা মেথডটিকে টেস্ট মেথড হিসেবে চিহ্নিত করে।SeeAllData=false ব্যবহার করে নিশ্চিত করা হয় যে টেস্ট মেথড শুধুমাত্র টেস্ট ডেটা ব্যবহার করবে এবং মূল ডেটাবেস ডেটা অ্যাক্সেস করবে না। এটি টেস্ট ডেটার নির্ভরযোগ্যতা এবং নিরাপত্তা নিশ্চিত করে।
SeeAllData=false
ব্যবহার করুন।System.assert()
ব্যবহার করে আউটপুট যাচাই করুন।Apex Unit Testing-এ Test Data Creation এবং @isTest Annotation ব্যবহার করে উন্নত, নিরাপদ, এবং নির্ভরযোগ্য টেস্টিং নিশ্চিত করা যায়।
common.read_more